//
// Created by ct on 2020/10/13.
//

#ifndef HTTPSERVER_CONNECTION_MANAGER_H
#define HTTPSERVER_CONNECTION_MANAGER_H

#include <set>
#include "connection.h"

namespace http {
    namespace server {
        class connection_manager {
        public:
            connection_manager(const connection_manager &) = delete;

            connection_manager &operator=(const connection_manager &) = delete;

            connection_manager();

            /// 将指定的连接添加到管理器并启动它。
            void start(connection_ptr);

            /// 停止指定的连接。
            void stop(connection_ptr);

            /// 停止所有连接。
            void stop_all();


        private:
            /// 托管连接
            std::set<connection_ptr> connections_;
        };
    }
}
#endif //HTTPSERVER_CONNECTION_MANAGER_H
